using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes.DomainAttributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Enums;
using System.Collections.Generic;
using System.ComponentModel;

namespace Baci.ArcGIS._BusinessAnalystTools._TargetMarketing
{
    /// <summary>
    /// <para>Import Survey Profiles</para>
    /// <para>Imports segmentation profiles consisting of survey variable data.</para>
    /// <para>导入由调查变量数据组成的细分配置文件。</para>
    /// </summary>    
    [DisplayName("Import Survey Profiles")]
    public class ImportSurveyProfiles : AbstractGPProcess
    {
        /// <summary>
        /// 无参构造
        /// </summary>
        public ImportSurveyProfiles()
        {

        }

        /// <summary>
        /// 有参构造
        /// </summary>
        /// <param name="_profiles">
        /// <para>Profiles</para>
        /// <para>Categories of survey variables that can be selected for importing as profiles.</para>
        /// <para>可选择导入为配置文件的调查变量的类别。</para>
        /// </param>
        /// <param name="_out_folder">
        /// <para>Output Folder</para>
        /// <para>The folder selected to contain the profiles being created.</para>
        /// <para>选择的文件夹包含正在创建的配置文件。</para>
        /// </param>
        public ImportSurveyProfiles(List<object> _profiles, object _out_folder)
        {
            this._profiles = _profiles;
            this._out_folder = _out_folder;
        }
        public override string ToolboxName => "Business Analyst Tools";

        public override string ToolName => "Import Survey Profiles";

        public override string CallName => "ba.ImportSurveyProfiles";

        public override List<string> AcceptEnvironments => ["baDataSource", "workspace"];

        public override object[] ParameterInfo => [_profiles, _out_folder, _out_profiles];

        /// <summary>
        /// <para>Profiles</para>
        /// <para>Categories of survey variables that can be selected for importing as profiles.</para>
        /// <para>可选择导入为配置文件的调查变量的类别。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Profiles")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public List<object> _profiles { get; set; }


        /// <summary>
        /// <para>Output Folder</para>
        /// <para>The folder selected to contain the profiles being created.</para>
        /// <para>选择的文件夹包含正在创建的配置文件。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Folder")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _out_folder { get; set; }


        /// <summary>
        /// <para>Output Profiles</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Profiles")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public List<object> _out_profiles { get; set; }


        public ImportSurveyProfiles SetEnv(object workspace = null)
        {
            base.SetEnv(workspace: workspace);
            return this;
        }

    }

}